package team.nine.kuaichezuche.util;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * 密码加密工具类，提供密码加密和验证功能
 */
public class PasswordEncoderUtil {
    
    // 单例模式
    private static final PasswordEncoderUtil instance = new PasswordEncoderUtil();
    private final BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
    
    private PasswordEncoderUtil() {
        // 私有构造函数，防止外部实例化
    }
    
    public static PasswordEncoderUtil getInstance() {
        return instance;
    }
    
    /**
     * 对密码进行BCrypt加密
     * @param rawPassword 原始密码
     * @return 加密后的密码字符串
     */
    public String encode(String rawPassword) {
        return encoder.encode(rawPassword);
    }
    
    /**
     * 验证密码是否匹配
     * @param rawPassword 原始密码
     * @param encodedPassword 加密后的密码
     * @return 如果匹配返回true，否则返回false
     */
    public boolean matches(String rawPassword, String encodedPassword) {
        return encoder.matches(rawPassword, encodedPassword);
    }
}